1. Field of the Invention
The present invention relates to an information processing apparatus, information processing method, and storage medium.
2. Description of the Related Art
Conventionally, a technique for detecting a specific object such as a person or face in an input image (to be referred to as input data) and performing processing suited to the detected object has been proposed for digital cameras and printers. An example of detecting a specific object is face detection processing of detecting a human face to perform skin color correction for the face.
Various methods have been proposed for the face detection processing. Examples are NPL1 (P. Viola and M. Jones, “Robust Real-time Object Detection”, SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION, Jul. 13, 2001: to be referred to as “Viola & Jones method”) using a plurality of discriminators, and methods using symmetrical features of the human face, template matching, neural network, and the like. The method using a plurality of discriminators can implement many discriminators by changing dictionary data (parameters) of one or several discrimination circuits. At this time, a cache method and prefetch method are used as techniques for rewriting parameters during processing, as needed, to speed up processing while suppressing the circuit scale of an internal memory configured to store parameters.
The following problems arise in the cache method and prefetch method serving as techniques for speeding up processing while suppressing the circuit scale of an internal memory. The cache method erases parameters sequentially from the oldest one. If processing for input data advances to (for example, (m+1)th) identification processing larger than the number (for example, m) of parameters storable in a parameter storage unit, and then the result of the identification processing becomes False, all parameters always need to be reloaded because the first parameter is already deleted. The cache effect is poor for a branch structure.
The prefetch method predicts the next necessary parameter, and loads a parameter i+1 for use in identification processing i+1 during identification processing i using a parameter i. However, if the result of identification processing i becomes False, the prediction fails and the loaded parameter i+1 becomes invalid. When the prefetch method is applied to a branch structure, all the parameters of a plurality of branch destination candidates may be prefetched, or after determining a branch destination, a parameter may be loaded without prefetch. In the former case, only one of the parameters is used actually, and invalid parameter loading rises. In the latter case, processing stops during parameter loading.